Method for increasing the accuracy of traffic cameras using optical masking technology

ABSTRACT

A method of managing traffic flow. The method includes receiving, at a camera, an image containing vehicle traffic flow. The method also includes processing, using a processor, the image to mask areas in the image that exceed a predetermined number of candelas. The method also includes thereafter analyzing, using the processor, the image to determine a parameter related to the vehicles, whereby an analysis is performed. The method also includes managing the traffic flow based on the analysis.

BACKGROUND INFORMATION 1. Field:

The present disclosure relates to methods and devices for increasing theaccuracy of traffic cameras using masking technology.

2. Background:

Traffic cameras have been used by governmental and private entities totrack vehicle traffic and modify the timing of traffic signalsaccordingly. In particular, optical-based vehicle detection systemscommonly used by transportation agencies require a high degree ofreliability and performance.

At a traffic intersection with vehicle detection technology, a missedvehicle could sit at the intersection indefinitely. As a result, thetraffic signal light might stay red for longer than desired, possiblyindefinitely. Additionally, sooner or later, a vehicle will choose torun the red light which is not changing. As a result, a public safetyhazard may be created. This phenomenon is undesirable.

Additionally, bright lights in the field of view of the camera can causevehicles to be missed. Bright lights may be generated by vehicles fromtheir headlights on high beam, reflected from wet or icy pavement, fromcars, or from other sources. Direct sunlight and glare during sunriseand sunset often cause a vehicle detection algorithm to become lesseffective; sometimes to the point of completely missing a vehicleapproaching a stoplight, which is also undesirable.

SUMMARY

The illustrative embodiments provide for a method of managing trafficflow. The method includes receiving, at a camera, an image containingvehicle traffic flow. The method also includes processing, using aprocessor, the image to mask lit headlights of vehicles in the imagethat exceed a predetermined number of candelas. The method also includesthereafter analyzing, using the processor, the image to determine aparameter related to the vehicles, whereby an analysis is performed. Themethod also includes managing the traffic flow based on the analysis.

The illustrative embodiments also provide for a method of managingtraffic flow. The method includes receiving, at a camera, an imagecontaining vehicle traffic flow. The method also includes processing,using a processor, the image to mask glare emanating from vehicles inthe image that exceed a predetermined number of candelas. The methodalso includes thereafter analyzing, using the processor, the image todetermine a parameter related to the vehicles, whereby an analysis isperformed. The method also includes managing the traffic flow based onthe analysis.

The illustrative embodiments also provide for a method of managingtraffic flow. The method includes receiving, at a camera, an imagecontaining vehicle traffic flow. The method also includes processing,using a processor, the image to mask glare emanating from one or more ofa building, a sign, or a road in the image, when the glare exceeds apredetermined number of candelas. The method also includes thereafteranalyzing, using the processor, the image to determine a parameterrelated to the vehicles, whereby an analysis is performed. The methodalso includes managing the traffic flow based on the analysis.

The illustrative embodiments also provide for a method of managingtraffic flow. The method includes receiving, at a camera, an imagecontaining vehicle traffic flow. The method also includes processing,using a processor, the image to mask at least a portion of a horizon orat least a portion of a sky when light in the horizon or the sky exceedsa predetermined number of candelas. The method also includes thereafteranalyzing, using the processor, the image to determine a parameterrelated to the vehicles, whereby an analysis is performed. The methodalso includes managing the traffic flow based on the analysis.

The illustrative embodiments also provide for a method of managingtraffic flow. The method includes receiving, at a camera, an imagecontaining vehicle traffic flow. The method also includes processing,using a processor, the image to mask areas in the image that exceed apredetermined number of candelas. The method also includes afterprocessing, adding edges, which comprise dark lines, around the areas.The method also includes thereafter analyzing, using the processor, theimage to determine a parameter related to the vehicles, whereby ananalysis is performed. The method also includes managing the trafficflow based on the analysis.

The illustrative embodiments also provide for a method of managingtraffic flow. The method includes receiving, at a camera having an iris,an image containing vehicle traffic flow. The method also includesprocessing, using a processor, the image to mask areas in the image thatexceed a predetermined number of candelas. The method also includesafter processing, determining whether an area in the areas remains abovethe predetermined number of candelas. The method also includes, onlyafter determining that the area remains above the predetermined numberof candelas, reducing an aperture of the iris until the area is belowthe predetermined number of candelas. The method also includesthereafter analyzing, using the processor, the image to determine aparameter related to the vehicles, whereby an analysis is performed. Themethod also includes managing the traffic flow based on the analysis.

The illustrative embodiments also provide for a method of managingtraffic flow. The method includes receiving, at a camera, an imagecontaining vehicle traffic flow. The method also includes processing,using a processor, the image to mask areas in the image that exceed apredetermined number of candelas. The method also includes thereafteranalyzing, using the processor, the image to determine a parameterrelated to the vehicles, whereby an analysis is performed. The methodalso includes managing the traffic flow based on the analysis.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the illustrativeembodiments are set forth in the appended claims. The illustrativeembodiments, however, as well as a preferred mode of use, furtherobjectives and features thereof, will best be understood by reference tothe following detailed description of an illustrative embodiment of thepresent disclosure when read in conjunction with the accompanyingdrawings, wherein:

FIG. 1 illustrates an image taken by a traffic camera, wherein brightareas are masked, in accordance with an illustrative embodiment;

FIG. 2 is a traffic camera system, in accordance with an illustrativeembodiment;

FIG. 3 is a method of managing traffic, in accordance with anillustrative embodiment; and

FIG. 4 illustrates a data processing system, in accordance with anillustrative embodiment.

DETAILED DESCRIPTION

Unless otherwise provided, as used herein, the term “vehicle” refers toany kind of vehicle which may be subject to traffic signals. Thus, forsurface roads, the term “vehicle” refers to automobiles (cars andtrucks), commercial trucks and other commercial vehicles, motorcycles,bicycles, mopeds, tractors, and other forms of vehicles that may berequired by law to obey traffic signals. For waterways, the term“vehicle” includes boats, ships, kayaks, or any other form of watervehicle that may be subject to regulation at an intersection of awaterway. For airports, taxiing aircraft may be subject to groundtraffic signals, and thus are also “vehicles.” For rail road systems,the term “vehicle” includes trains or other vehicles which may besubject to train signals. However, while the term “vehicle” by itself isbroadly interpreted, the illustrative embodiments are especiallyapplicable to motor vehicles and man powered vehicles that are subjectto regulation by traffic signals at roadway intersections. Claims thatreference vehicles, but specifically refer to parts of motor vehiclesand man powered vehicles that are subject to such regulation, should beinterpreted as being limited to types of vehicles that operate onterrestrial roadways subject to traffic signals.

The illustrative embodiments recognize and take into account thatthermal cameras, sometimes known as infrared cameras, have been used tosolve bright light issues in traffic cameras. However, thermal camerasare very expensive and can have temperature difference issues which cancause errors in vehicle detection. Specifically, in very hot or coldconditions, vehicles can be missed because the vehicle cannot bedistinguished from the environment. For example, a recently startedvehicle will be close to the same temperature as the surroundingenvironment, as can a long running car in a hot environment. Stillfurther, pavement marking used to draw detection zones used with imagesoftware algorithms are invisible. Thus, thermal cameras are anunsatisfactory solution to the problem of overly bright areas in opticaltraffic camera use.

The illustrative embodiments also recognize and take into account thatsome cameras employ sharpness settings to adjust for brightness issues.However, sharpness settings create a computer-generated line around allobjects in the field of view. Thus, this technique will result in acomputer generation of an imaginary line around the shadow of a vehicle.If the vehicle shadow passes into an adjacent lane, the vehicledetection system can think the shadow is an actual moving vehicle andgenerate a false detection. Thus, this technique is also undesirable.

Therefore, the illustrative embodiments provide for an optical masktechnology (OMT). The optical mask technology of the illustrativeembodiments does not produce the type of missed vehicle or falsedetection issues associated with thermal cameras or camera sharpnesssettings.

The optical mask technology of the illustrative embodiments blocks highcandela light sources in an image. A “candela” is a unit of measurementwhich represents how bright something is. Another unit of measurementcould be a “lumen.” In any case, the illustrative embodiments enhanceany optical vehicle detection devices by minimizing or eliminating ahigh candela source that can cause image processing software to missvehicles. In addition to masking the bright light source, theillustrative embodiments may provide for a computer generated black andwhite edge which can be added. This edge can also increase the abilityof a vehicle to be detected by image processing software associated withthe traffic camera.

The illustrative embodiments also recognize and take into account thatglare can be reduced by reducing the camera aperture, or the camerairis, just as a human may squint in a glare to reduce the amount oflight reaching the eye. However, a smaller iris will flatten out thepicture, making the edges more muted. When edges are more muted,detecting a vehicle is more difficult. Furthermore, a smaller iris willalso make a dark car on a dark pavement in a shadow harder to detectbecause there are no edges or highly muted edges.

In contrast, the optical masking technology of the illustrativeembodiments blocks the glare. As a result, the camera automatic iriswill automatically open up, letting in more light. This result sharpensthe image and provides more contrast, which in turn increases detectionwhich means fewer missed vehicles.

The illustrative embodiments further recognize and take into accountthat optical based vehicle detection devices can look for edges. An edgeis a line or lines between structures of a given size. For example, anedge may be the transition of a tire to the vehicle body, or could bethe transition of a chrome bumper to a vehicle body.

However, to increase aerodynamics, many car manufactures attempt to maketheir vehicles as smooth as possible. This fact reduces both the windresistance and the optical signal of a vehicle. Hence, modern vehiclesmay present there are almost no edges.

Edges are registered by the image processing algorithm in the digitalsignal processor (DSP) as shades of grey on a scale from 0 to 255, with0 being pure white and 255 being completely dark. A typical vehicle edgemay be 50 on one side and 125 on the other with a contrast difference of75. In contrast, the optical masking technology of the illustrativeembodiments produces the highest contrast edge relative to other imageprocessing technologies, with 0 on one side and 255 on the other for acontrast difference of 255.

The higher the contrast difference, the less chance of missing avehicle. When a high contrast edge is produced on a moving vehicle, suchas around the car headlight or glare from the vehicle due to the sunreflecting off the surface, the chance of the vehicle being detected isgreatly enhanced.

Thus, the illustrative embodiments recognize and take into account that,by masking bright lights and generating a high contrast edge, theperformance of any optical vehicle detection system can be greatlyimproved. Accordingly, any kind of bright light can be removed from animage taken by a traffic camera, with removing performed either byhardware or by a processor executing an image processing algorithm.Examples include, but are not limited to, the rising or setting sun,glare resulting from sunlight reflection in the sky, on the road, onvehicles, or off of surrounding buildings, signs, or other structures.Furthermore, headlights of cars can be masked, as well as any othersource of light which is above a predetermined candela limit.Subsequently, the processed image is provided to a traffic trackingalgorithm which, when executed by a computer, is able to count orotherwise detect and process vehicles with a greatly reduced chance oferror of either missing a vehicle that is actually present or counting avehicle when none is present.

The illustrative embodiments may be further varied. For example, theiris of a camera may open and close based on the amount of light in thefield of view after masking. When a very bright background is presenteven after masking, such as direct sunlight at particular angles, thecamera's automatic iris can become smaller. However, this embodiment maybe less desirable in some instances due to the flattening of images asdescribed above. However, the optical masking technology of theillustrative embodiments may be used to reduce the extent of automaticiris closure, thereby improving traffic algorithm performance relativeto closing the iris further as when no masking is performed.

Thus, the illustrative embodiments have several uses. For example, theoptical masking technology of the illustrative embodiments may be usedto block light coming from headlights of traffic vehicles. In anotherexample, the optical masking technology of the illustrative embodimentsmay be used to block the glare from a traffic vehicle headlightreflected off the pavement. This latter event is common when thepavement has ice, snow or water on it.

In another example, the optical masking technology of the illustrativeembodiments may be used to block the setting sun or bright sky. In stillanother example, the optical masking technology of the illustrativeembodiments may be used to block the glare by generating a mask with avery high contrast edge when a bright light is generated or reflectedoff of a vehicle or surface. The high contrast edge is acomputer-generated image that will trigger video detection software.

In yet another example, the optical masking technology of theillustrative embodiments may be used to block high candela light sourcesin the field of view, while simultaneously narrowing automatically theiris of a camera. However, combined with masking, the amount of irisclosure is limited relative to without the use of masking. Again, a moreopen iris creates a higher image contrast. Higher contrast edgestranslate into better detection of vehicles.

FIG. 1 illustrates an image taken by a traffic camera, wherein brightareas are masked, in accordance with an illustrative embodiment. Image100 is taken by a camera disposed in order to monitor one or more areasof intersection 102 of roads. The camera may be either a still camera ora video camera, though preferably the camera is capable of taking video.Because image 100 is taken from the point of view of the camera, thecamera itself is not shown in FIG. 1.

Image 100 contains a number of features, including road 104 and a numberof vehicles, such as but not limited to vehicle 106, vehicle 108,vehicle 110, and vehicle 111. Other features are shown in thebackground, including buildings, signs, light posts, and trees.Additionally, horizon or sky 112 is shown in the far background. Image100 also includes a number of computer-drawn arrows, such as but notlimited to arrow 114. These computer-drawn arrows are used by a trafficmonitoring algorithm to count cars and show their velocity.

As can be seen in FIG. 1, a number of areas in image 100 have beenmasked. For example, area 116, area 118, area 120, area 122, area 124,and area 126 have all been masked. Area 116 corresponds to an area ofsolar glare from vehicle 106. Area 118 corresponds to an area of solarglare from vehicle 110. Area 120 corresponds to an area of solar glarefrom vehicle 111. Area 122 corresponds to switched-on headlights ofvehicle 108. Area 124 corresponds to the sky, which may be overly brightdue to a rising or setting sun. Area 126 corresponds to a light emittedfrom street lamp 128, or possibly from a glare from the same. Othermasked areas are also shown in FIG. 1.

Masking, as used herein, refers to using imaging processing to convertan area in an image from its actual representation as taken by thecamera to a black or greyed-out area. Masking is performed responsive toa processor determining that one or more pixels in an area of image 100are too bright. As used herein, “too bright” refers to a pixel or pixelsbeing colored or having an intensity indicating that the brightness ofthat area is above a predetermined number of candelas, lumens, or othermeasure of light intensity. By masking these areas, the traffic systemmore accurately measures parameters with respect to the vehicles inimage 100, including but not limited to their number, their position,their velocity, their make and model, their license plate numbers,whether any vehicles are in violation of traffic laws, and any otherdesirable parameter. Thus, the illustrative embodiments contemplatethese and other parameters: a number of the vehicles in the image, aspeed at which the vehicles are moving in the image, a number ofvehicles waiting at an intersection in the image, and types of thevehicles in the image.

Optionally, the processor may add edges to masked areas. Edges are linesdrawn around a masked area. Edges can increase contrast, and asdescribed above, thereby further increase the accuracy of measuredparameters of vehicles in image 100.

Once image 100 has been processed by masking, the processed image isthen analyzed to aid in managing traffic. For example, if a vehiclearrives at an otherwise quiet intersection, the processor may triggerthe traffic signals to change accordingly. In another example, if apredetermined number of cars are waiting at on side of an intersection,the processor may trigger the traffic signals to change accordingly toallow those cars to pass through the intersection. Thus, theillustrative embodiments contemplate adjusting traffic light operationat an intersection at which the camera is located, notifying anauthority of a traffic violation of a particular vehicle in thevehicles, notifying emergency services based on an event detected in theimage, and recording and storing the image for future traffic flowstudy. Many other changes to the traffic signals are contemplated inresponse to a variety of stimuli as detected in image 100.

FIG. 2 is a traffic camera system, in accordance with an illustrativeembodiment. Traffic camera system 200 includes camera 202, processor204, and non-transitory computer readable storage medium 206.Non-transitory computer readable storage medium 206 may include programcode which, when executed by processor 204, performs acomputer-implemented method, such as those described below with respectto FIG. 3, or elsewhere herein. Additionally, non-transitory computerreadable storage medium 206 may contain program code for performing anyof the optical masking techniques for improving traffic flow, asdescribed above. Thus, traffic camera system 200 may be used to maskareas of an image taken by camera 202 in order to increase contrast andmore readily identify cars within field of view 208 of camera 202.

FIG. 3 is a method of managing traffic, in accordance with anillustrative embodiment. Method 300 may be implemented by a trafficcamera system, such as those described with respect to FIG. 1, or bytraffic camera system 200 of FIG. 2. Method 300 may be characterized asa method of managing traffic flow.

Method 300 includes receiving, at a camera, an image containing vehicletraffic flow (operation 302).

Method 300 also includes processing, using a processor, the image tomask areas in the image that exceed a predetermined number of candelas(operation 304). Method 300 also includes, thereafter, analyzing, usingthe processor, the image to determine a parameter related to thevehicles, whereby an analysis is performed (operation 306). Method 300also includes managing the traffic flow based on the analysis (operation308). In one illustrative embodiment, the method may terminatethereafter.

Method 300 may be varied. For example, the parameter may be one or moreof: a number of the vehicles in the image, a speed at which the vehiclesare moving in the image, a number of vehicles waiting at an intersectionin the image, and types of the vehicles in the image. In anothervariation, managing may be one or more of: adjusting traffic lightoperation at an intersection at which the camera is located, notifyingan authority of a traffic violation of a particular vehicle in thevehicles, notifying emergency services based on an event detected in theimage, and recording and storing the image for future traffic flowstudy.

Still other variations are possible. For example, operation 304 mayspecifically be limited to processing, using a processor, the image tomask lit headlights of vehicles in the image that exceed a predeterminednumber of candelas. Alternatively, operation 304 may be limited toprocessing, using a processor, the image to mask glare emanating fromvehicles in the image that exceed a predetermined number of candelas.

In still another variation, operation 304 may be limited to processing,using a processor, the image to mask glare emanating from one or more ofa building, a sign, or a road in the image, when the glare exceeds apredetermined number of candelas. In yet another variation, operation304 may be limited to processing, using a processor, the image to maskat least a portion of a horizon or at least a portion of a sky whenlight in the horizon or the sky exceeds a predetermined number ofcandelas.

Still further, additional operations may be present. For example, method300 may include the additional operation of, after processing, addingedges, which comprise dark lines, around the areas. In a still differentvariation, method 300 may also include, after processing, determiningwhether an area in the areas remains above the predetermined number ofcandelas. In this case, only after determining that the area remainsabove the predetermined number of candelas, method 300 may also includereducing an aperture of the iris until the area is below thepredetermined number of candelas.

Still other variations are possible. Thus, the examples given withrespect to FIG. 3 do not necessarily limit the claimed inventions.

Turning now to FIG. 4, an illustration of a data processing system isdepicted in accordance with an illustrative embodiment. Data processingsystem 400 in FIG. 4 is an example of a data processing system that maybe used to implement the illustrative embodiments, such the camera whichproduced image 100 of FIG. 1, traffic camera system 200 of FIG. 2,method 300 of FIG. 3, or any other module or system or process disclosedherein. In this illustrative example, data processing system 400includes communications fabric 402, which provides communicationsbetween processor unit 404, memory 406, persistent storage 408,communications unit 410, input/output (I/O) unit 412, and display 414.

Processor unit 404 serves to execute instructions for software that maybe loaded into memory 406. This software may be a content addressablememory, or software for implementing the processes described elsewhereherein. Processor unit 404 may be a number of processors, amulti-processor core, or some other type of processor, depending on theparticular implementation. A number, as used herein with reference to anitem, means one or more items. Further, processor unit 404 may beimplemented using a number of heterogeneous processor systems in which amain processor is present with secondary processors on a single chip. Asanother illustrative example, processor unit 404 may be a symmetricmulti-processor system containing multiple processors of the same type.

Memory 406 and persistent storage 408 are examples of storage devices416. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, data,program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. Storage devices416 may also be referred to as computer readable storage devices inthese examples. Memory 406, in these examples, may be, for example, arandom access memory or any other suitable volatile or non-volatilestorage device. Persistent storage 408 may take various forms, dependingon the particular implementation.

For example, persistent storage 408 may contain one or more componentsor devices. For example, persistent storage 408 may be a hard drive, aflash memory, a rewritable optical disk, a rewritable magnetic tape, orsome combination of the above. The media used by persistent storage 408also may be removable. For example, a removable hard drive may be usedfor persistent storage 408.

Communications unit 410, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 410 is a network interface card. Communications unit410 may provide communications through the use of either or bothphysical and wireless communications links.

Input/output (I/O) unit 412 allows for input and output of data withother devices that may be connected to data processing system 400. Forexample, input/output (I/O) unit 412 may provide a connection for userinput through a keyboard, a mouse, and/or some other suitable inputdevice. Further, input/output (I/O) unit 412 may send output to aprinter. Display 414 provides a mechanism to display information to auser.

Instructions for the operating system, applications, and/or programs maybe located in storage devices 416, which are in communication withprocessor unit 404 through communications fabric 402. In theseillustrative examples, the instructions are in a functional form onpersistent storage 408. These instructions may be loaded into memory 406for execution by processor unit 404. The processes of the differentembodiments may be performed by processor unit 404 using computerimplemented instructions, which may be located in a memory, such asmemory 406.

These instructions are referred to as program code, computer usableprogram code, or computer readable program code that may be read andexecuted by a processor in processor unit 404. The program code in thedifferent embodiments may be embodied on different physical or computerreadable storage media, such as memory 406 or persistent storage 408.

Program code 418 is located in a functional form on computer readablemedia 420 that is selectively removable and may be loaded onto ortransferred to data processing system 400 for execution by processorunit 404. Program code 418 and computer readable media 420 form computerprogram product 422 in these examples. In one example, computer readablemedia 420 may be computer readable storage media 424 or computerreadable signal media 426. Computer readable storage media 424 mayinclude, for example, an optical or magnetic disk that is inserted orplaced into a drive or other device that is part of persistent storage408 for transfer onto a storage device, such as a hard drive, that ispart of persistent storage 408. Computer readable storage media 424 alsomay take the form of a persistent storage, such as a hard drive, a thumbdrive, or a flash memory, that is connected to data processing system400. In some instances, computer readable storage media 424 may not beremovable from data processing system 400.

Alternatively, program code 418 may be transferred to data processingsystem 400 using computer readable signal media 426. Computer readablesignal media 426 may be, for example, a propagated data signalcontaining program code 418. For example, computer readable signal media426 may be an electromagnetic signal, an optical signal, and/or anyother suitable type of signal. These signals may be transmitted overcommunications links, such as wireless communications links, opticalfiber cable, coaxial cable, a wire, and/or any other suitable type ofcommunications link. In other words, the communications link and/or theconnection may be physical or wireless in the illustrative examples.

In some illustrative embodiments, program code 418 may be downloadedover a network to persistent storage 408 from another device or dataprocessing system through computer readable signal media 426 for usewithin data processing system 400. For instance, program code stored ina computer readable storage medium in a server data processing systemmay be downloaded over a network from the server to data processingsystem 400. The data processing system providing program code 418 may bea server computer, a client computer, or some other device capable ofstoring and transmitting program code 418.

The different components illustrated for data processing system 400 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 400. Other components shown in FIG. 4 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of runningprogram code. As one example, the data processing system may includeorganic components integrated with inorganic components and/or may becomprised entirely of organic components excluding a human being. Forexample, a storage device may be comprised of an organic semiconductor.

In another illustrative example, processor unit 404 may take the form ofa hardware unit that has circuits that are manufactured or configuredfor a particular use. This type of hardware may perform operationswithout needing program code to be loaded into a memory from a storagedevice to be configured to perform the operations.

For example, when processor unit 404 takes the form of a hardware unit,processor unit 404 may be a circuit system, an application specificintegrated circuit (ASIC), a programmable logic device, or some othersuitable type of hardware configured to perform a number of operations.With a programmable logic device, the device is configured to performthe number of operations. The device may be reconfigured at a later timeor may be permanently configured to perform the number of operations.Examples of programmable logic devices include, for example, aprogrammable logic array, programmable array logic, a field programmablelogic array, a field programmable gate array, and other suitablehardware devices. With this type of implementation, program code 418 maybe omitted because the processes for the different embodiments areimplemented in a hardware unit.

In still another illustrative example, processor unit 404 may beimplemented using a combination of processors found in computers andhardware units. Processor unit 404 may have a number of hardware unitsand a number of processors that are configured to run program code 418.With this depicted example, some of the processes may be implemented inthe number of hardware units, while other processes may be implementedin the number of processors.

As another example, a storage device in data processing system 400 isany hardware apparatus that may store data. Memory 406, persistentstorage 408, and computer readable media 420 are examples of storagedevices in a tangible form.

In another example, a bus system may be used to implement communicationsfabric 402 and may be comprised of one or more buses, such as a systembus or an input/output bus. Of course, the bus system may be implementedusing any suitable type of architecture that provides for a transfer ofdata between different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 406, or a cache, such asfound in an interface and memory controller hub that may be present incommunications fabric 402.

The different illustrative embodiments can take the form of an entirelyhardware embodiment, an entirely software embodiment, or an embodimentcontaining both hardware and software elements. Some embodiments areimplemented in software, which includes but is not limited to forms suchas, for example, firmware, resident software, and microcode.

Furthermore, the different embodiments can take the form of a computerprogram product accessible from a computer usable or computer readablemedium providing program code for use by or in connection with acomputer or any device or system that executes instructions. For thepurposes of this disclosure, a computer usable or computer readablemedium can generally be any tangible apparatus that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, or device.

The computer usable or computer readable medium can be, for example,without limitation an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, or a propagation medium. Non-limitingexamples of a computer readable medium include a semiconductor or solidstate memory, magnetic tape, a removable computer diskette, a randomaccess memory (RAM), a read-only memory (ROM), a rigid magnetic disk,and an optical disk. Optical disks may include compact disk-read onlymemory (CD-ROM), compact disk-read/write (CD-R/W), and DVD.

Further, a computer usable or computer readable medium may contain orstore a computer readable or computer usable program code such that whenthe computer readable or computer usable program code is executed on acomputer, the execution of this computer readable or computer usableprogram code causes the computer to transmit another computer readableor computer usable program code over a communications link. Thiscommunications link may use a medium that is, for example withoutlimitation, physical or wireless.

A data processing system suitable for storing and/or executing computerreadable or computer usable program code will include one or moreprocessors coupled directly or indirectly to memory elements through acommunications fabric, such as a system bus. The memory elements mayinclude local memory employed during actual execution of the programcode, bulk storage, and cache memories which provide temporary storageof at least some computer readable or computer usable program code toreduce the number of times code may be retrieved from bulk storageduring execution of the code.

Input/output or I/O devices can be coupled to the system either directlyor through intervening I/O controllers. These devices may include, forexample, without limitation, keyboards, touch screen displays, andpointing devices. Different communications adapters may also be coupledto the system to enable the data processing system to become coupled toother data processing systems or remote printers or storage devicesthrough intervening private or public networks. Non-limiting examples ofmodems and network adapters are just a few of the currently availabletypes of communications adapters.

The description of the different illustrative embodiments has beenpresented for purposes of illustration and description, and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. Further, different illustrativeembodiments may provide different features as compared to otherillustrative embodiments. The embodiment or embodiments selected arechosen and described in order to best explain the principles of theembodiments, the practical application, and to enable others of ordinaryskill in the art to understand the disclosure for various embodimentswith various modifications as are suited to the particular usecontemplated.

What is claimed is:
 1. A method of managing traffic flow, the methodcomprising: receiving, at a camera, an image containing vehicle trafficflow; processing, using a processor, the image to mask lit headlights ofvehicles in the image that exceed a predetermined number of candelas;thereafter analyzing, using the processor, the image to determine aparameter related to the vehicles, whereby an analysis is performed; andmanaging the traffic flow based on the analysis.
 2. The method of claim1, wherein the parameter comprises one or more of: a number of thevehicles in the image, a speed at which the vehicles are moving in theimage, a number of vehicles waiting at an intersection in the image, andtypes of the vehicles in the image.
 3. The method of claim 1, whereinmanaging comprises one or more of: adjusting traffic light operation atan intersection at which the camera is located, notifying an authorityof a traffic violation of a particular vehicle in the vehicles,notifying emergency services based on an event detected in the image,and recording and storing the image for future traffic flow study.
 4. Amethod of managing traffic flow, the method comprising: receiving, at acamera, an image containing vehicle traffic flow; processing, using aprocessor, the image to mask glare emanating from vehicles in the imagethat exceed a predetermined number of candelas; thereafter analyzing,using the processor, the image to determine a parameter related to thevehicles, whereby an analysis is performed; and managing the trafficflow based on the analysis.
 5. The method of claim 4, wherein theparameter comprises one or more of: a number of the vehicles in theimage, a speed at which the vehicles are moving in the image, a numberof vehicles waiting at an intersection in the image, and types of thevehicles in the image.
 6. The method of claim 4, wherein managingcomprises one or more of: adjusting traffic light operation at anintersection at which the camera is located, notifying an authority of atraffic violation of a particular vehicle in the vehicles, notifyingemergency services based on an event detected in the image, andrecording and storing the image for future traffic flow study.
 7. Amethod of managing traffic flow, the method comprising: receiving, at acamera, an image containing vehicle traffic flow; processing, using aprocessor, the image to mask glare emanating from one or more of abuilding, a sign, or a road in the image, when the glare exceeds apredetermined number of candelas; thereafter analyzing, using theprocessor, the image to determine a parameter related to the vehicles,whereby an analysis is performed; and managing the traffic flow based onthe analysis.
 8. The method of claim 7, wherein the parameter comprisesone or more of: a number of the vehicles in the image, a speed at whichthe vehicles are moving in the image, a number of vehicles waiting at anintersection in the image, and types of the vehicles in the image. 9.The method of claim 7, wherein managing comprises one or more of:adjusting traffic light operation at an intersection at which the camerais located, notifying an authority of a traffic violation of aparticular vehicle in the vehicles, notifying emergency services basedon an event detected in the image, and recording and storing the imagefor future traffic flow study.
 10. A method of managing traffic flow,the method comprising: receiving, at a camera, an image containingvehicle traffic flow; processing, using a processor, the image to maskat least a portion of a horizon or at least a portion of a sky whenlight in the horizon or the sky exceeds a predetermined number ofcandelas; thereafter analyzing, using the processor, the image todetermine a parameter related to the vehicles, whereby an analysis isperformed; and managing the traffic flow based on the analysis.
 11. Themethod of claim 10, wherein the parameter comprises one or more of: anumber of the vehicles in the image, a speed at which the vehicles aremoving in the image, a number of vehicles waiting at an intersection inthe image, and types of the vehicles in the image.
 12. The method ofclaim 10, wherein managing comprises one or more of: adjusting trafficlight operation at an intersection at which the camera is located,notifying an authority of a traffic violation of a particular vehicle inthe vehicles, notifying emergency services based on an event detected inthe image, and recording and storing the image for future traffic flowstudy.
 13. A method of managing traffic flow, the method comprising:receiving, at a camera, an image containing vehicle traffic flow;processing, using a processor, the image to mask areas in the image thatexceed a predetermined number of candelas; after processing, addingedges, which comprise dark lines, around the areas; thereafteranalyzing, using the processor, the image to determine a parameterrelated to the vehicles, whereby an analysis is performed; and managingthe traffic flow based on the analysis.
 14. The method of claim 13,wherein the parameter comprises one or more of: a number of the vehiclesin the image, a speed at which the vehicles are moving in the image, anumber of vehicles waiting at an intersection in the image, and types ofthe vehicles in the image.
 15. The method of claim 13, wherein managingcomprises one or more of: adjusting traffic light operation at anintersection at which the camera is located, notifying an authority of atraffic violation of a particular vehicle in the vehicles, notifyingemergency services based on an event detected in the image, andrecording and storing the image for future traffic flow study.
 16. Amethod of managing traffic flow, the method comprising: receiving, at acamera having an iris, an image containing vehicle traffic flow;processing, using a processor, the image to mask areas in the image thatexceed a predetermined number of candelas; after processing, determiningwhether an area in the areas remains above the predetermined number ofcandelas; only after determining that the area remains above thepredetermined number of candelas, reducing an aperture of the iris untilthe area is below the predetermined number of candelas; thereafteranalyzing, using the processor, the image to determine a parameterrelated to the vehicles, whereby an analysis is performed; and managingthe traffic flow based on the analysis.
 17. The method of claim 16,wherein the parameter comprises one or more of: a number of the vehiclesin the image, a speed at which the vehicles are moving in the image, anumber of vehicles waiting at an intersection in the image, and types ofthe vehicles in the image.
 18. The method of claim 16, wherein managingcomprises one or more of: adjusting traffic light operation at anintersection at which the camera is located, notifying an authority of atraffic violation of a particular vehicle in the vehicles, notifyingemergency services based on an event detected in the image, andrecording and storing the image for future traffic flow study.
 19. Amethod of managing traffic flow, the method comprising: receiving, at acamera, an image containing vehicle traffic flow; processing, using aprocessor, the image to mask areas in the image that exceed apredetermined number of candelas; thereafter analyzing, using theprocessor, the image to determine a parameter related to the vehicles,whereby an analysis is performed; and managing the traffic flow based onthe analysis.
 20. The method of claim 19, wherein the parametercomprises one or more of: a number of the vehicles in the image, a speedat which the vehicles are moving in the image, a number of vehicleswaiting at an intersection in the image, and types of the vehicles inthe image.
 21. The method of claim 19, wherein managing comprises one ormore of: adjusting traffic light operation at an intersection at whichthe camera is located, notifying an authority of a traffic violation ofa particular vehicle in the vehicles, notifying emergency services basedon an event detected in the image, and recording and storing the imagefor future traffic flow study.